package com.example.dbcms.service;

import com.example.dbcms.domain.CostStatistic;
import com.example.dbcms.domain.ParkingFeeInfo;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

public interface ParkingFeeService {
    /**
     * 查询所有停车费用信息
     * @return
     */
    PageInfo<ParkingFeeInfo> selectAllParkingFeeInfo(ParkingFeeInfo parkingFeeInfo);

    /**
     * 查询所有停车位费用根据parkingId
     * 普通用户使用
     * @param
     * @return
     */
    PageInfo<ParkingFeeInfo> selectAllParkingFeeByParkingId(ParkingFeeInfo parkingFeeInfo);

    /**
     * 新增停车费用记录
     * @param parkingFeeInfo
     * @return
     */
    int addParkingFee(ParkingFeeInfo parkingFeeInfo);

    /**
     * 刷新添加停车费用记录
     * @param parkingId
     * @param year
     * @param month
     * @param fee
     * @return
     */
    int addParkingFee(int parkingId,int year,int month,String fee);

    /**
     * 通过id得到停车费用信息
     * @param id
     * @return
     */
    ParkingFeeInfo getParkingFee(int id);

    /**
     * 更新停车费用记录
     * @param parkingFeeInfo
     * @return
     */
    int editParkingFee(ParkingFeeInfo parkingFeeInfo);

    /**
     * 通过id删除记录
     * @param id
     * @return
     */
    int deleteParkingFee(int id);

    /**
     * 删除多条记录
     * @param ids
     * @return
     */
    int deleteMultipleParkingFee(List<Integer> ids);

    /**
     * 通过id修改
     * @param id
     * @return
     */
    int payParkingFee(int id,String username);

    /**
     * 用户多条记录缴费
     * @param ids
     * @param username
     * @return
     */
    int payMultipleParkingFee(List<Integer> ids,String username);

    /**
     * 得到所有停车费用总和
     * @param costStatistic
     * @return
     */
    CostStatistic getAllParkingFee(CostStatistic costStatistic);

    /**
     * 提醒未有停车费用待缴纳的用户缴费
     * @return
     */
    int remindPayParkingFee();
}
